package com.li.onjava8.concurrent.under.atomic;

/**
 * 要解决这个问题，将 synchronized 关键字添加到 nextSerialNumber() 方法
 * volatile 不再是必需的，因为 synchronized 关键字保证了 volatile （易变性） 的特性。
 */
public class SynchronizedSerialNumbers extends SerialNumbers {
    private int serialNumber = 0;
    public synchronized int nextSerialNumber() {
        return serialNumber++;
    }

    public static void main(String[] args) {
        SerialNumberChecker.test(new SynchronizedSerialNumbers());
    }
}
